/**
 * 
 */
package com.maohi.software.tupuna.modules;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

import com.google.inject.AbstractModule;
import com.google.inject.name.Names;
import com.maohi.software.tupuna.constants.UIConstant;
import com.maohi.software.tupuna.ui.ContentUI;
import com.maohi.software.tupuna.ui.HeaderUI;
import com.maohi.software.tupuna.ui.MainUI;
import com.maohi.software.tupuna.ui.MaximizeButton;
import com.maohi.software.tupuna.ui.MinimizeButton;
import com.maohi.software.tupuna.ui.ProfileButton;
import com.maohi.software.tupuna.ui.SettingsButton;
import com.maohi.software.tupuna.ui.ShutdownButton;

/**
 * @author heifara
 * 
 */
public class UIModule extends AbstractModule {

	@Override
	protected void configure() {
		this.bind(MainUI.class).annotatedWith(Names.named(UIConstant.MAIN_UI)).to(MainUI.class);
		this.bind(JPanel.class).annotatedWith(Names.named(UIConstant.HEADER_UI)).to(HeaderUI.class);
		this.bind(JTabbedPane.class).annotatedWith(Names.named(UIConstant.CONTENT_UI)).to(ContentUI.class);
		this.bind(JLabel.class).annotatedWith(Names.named(UIConstant.USER_LABEL_UI)).to(JLabel.class);
		this.bind(JButton.class).annotatedWith(Names.named(UIConstant.CONFIGURATION_BUTTON_UI)).to(SettingsButton.class);
		this.bind(JButton.class).annotatedWith(Names.named(UIConstant.PROFILE_BUTTON_UI)).to(ProfileButton.class);
		this.bind(JButton.class).annotatedWith(Names.named(UIConstant.MINIMIZE_BUTTON_UI)).to(MinimizeButton.class);
		this.bind(JButton.class).annotatedWith(Names.named(UIConstant.MAXIMIZE_BUTTON_UI)).to(MaximizeButton.class);
		this.bind(JButton.class).annotatedWith(Names.named(UIConstant.CLOSE_BUTTON_UI)).to(ShutdownButton.class);
	}
}
